package com.seanliao.nav.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.seanliao.nav.common.domain.dto.RoleDTO;
import com.seanliao.nav.common.domain.vo.RoleVO;
import com.seanliao.nav.entity.SysRole;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author Sean_Liao
 * @since 2024-01-23
 */
public interface ISysRoleService extends IService<SysRole> {

    /**
     * 获取所有角色的简单信息
     */
    List<RoleVO> listAll();

    /**
     * 根据角色id获取角色
     */
    List<RoleVO> listByUserId(Long userId);

    /**
     * 添加角色
     */
    void add(RoleDTO roleDTO);

    /**
     * 编辑角色
     */
    void edit(RoleDTO roleDTO);

    /**
     * 删除角色
     */
    void remove(Long roleId);

    /**
     * 根据用户分配角色
     */
    void editUserRole(Long userId, List<Long> roleIds);

    /**
     * 根据角色分配用户
     */
    void editRoleUser(Long roleId, List<Long> userIds);

    /**
     * 排序
     */
    void sort(List<RoleDTO> roleDTOList);

}
